Systems and methods for providing wireless-beacon-related services

ABSTRACT

In some embodiments, wireless connection information for wireless devices may be received. Based on the wireless connection information, one or more entries stored in a database may be updated. One or more instructions to provide connection information to a second device may be received via a first device of a user. Based on the instructions and the entries, first wireless connection information for a first wireless beacon device may be provided to the second device. In some embodiments, the first wireless connection information may include security information that enables the second user device to connect to the first wireless beacon device. In some embodiments, the first wireless beacon device may be selected from a set of devices based on a proximity of the first wireless beacon device to a location of the second device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/499,207, filed Oct. 12, 2021, which is a continuation of U.S. patentapplication Ser. No. 16/915,180, filed on Jun. 29, 2020, now U.S. Pat.No. 11,165,876 issued Nov. 2, 2021, which is a continuation of U.S.patent application Ser. No. 16/195,547, filed on Nov. 19, 2018, now U.S.Pat. No. 10,708,366 issued Jul. 7, 2020, which is a continuation of U.S.patent application Ser. No. 15/820,369, filed on Nov. 21, 2017, now U.S.Pat. No. 10,148,773 issued Dec. 4, 2018, which is a continuation of U.S.patent application Ser. No. 15/274,158, filed on Sep. 23, 2016, now U.S.Pat. No. 9,866,643 issued Jan. 9, 2018, which claims the benefit ofProvisional Patent Application No. 62/232,347, filed on Sep. 24, 2015.The aforementioned applications are incorporated by reference in theirentireties.

BACKGROUND INFORMATION

Providers, such as wireless network service providers or facilities,e.g. office buildings, museums, retail stores, or factories, may providelocation services that use, for example, beacons and/or receivers toidentify the location of users. But the current fragmented nature oflocation service provided by different providers hinders the completerealization of these devices' potential. While individual providers orfacilities may provide beacons and/or receivers to identify the locationof users, the sharing of this information is limited to the network ofthe provider or facility. In a single navigation, travel, or browsingexperience, a user may travel through multiple networks provided oroperated by different providers or facilities (e.g., by walking). Thisfragmentation prevents other providers or facilities from providingtargeted information based on the user's current location. Thesedeficiencies also prevent users from receiving location-specificinformation based on their movement and/or actions over the networks ofmultiple providers or facilities.

Further, because providers or facilities offering location services arelimited to the geographic extent of their network, they receive onlyfragmentary information about previous user locations. For example,existing systems may not be able to monitor whether a user haspreviously been in one facility or in another facility. Existing systemsmay also fail to merge data from surrounding merchants, so the locationof a user with respect to surrounding merchants may be undefined.Consequently, surrounding merchants cannot offer directions to theirstores or other facilities.

The smaller size and individualized nature of these fragmentary systemsalso weights against efforts to combine such systems with other datasources regarding customer or visitor behavior. Furthermore, developmentof tools for exploiting this location information may be hindered by theinconvenient need to use multiple applications specific to individualproviders or facilities.

A need therefore exists for methods and systems configured to provideusers and individual providers access to location information frommultiple different providers. This location information should beprovided in some instances through an open API accessible to users,providers, facilities, and others. The API should typically also combinemultiple sources of information to provide a more comprehensive pictureof users' interests and behavior and be implemented using an applicationsuitable for use with a mobile device.

SUMMARY

In some embodiments, wireless connection information for wirelessdevices may be received. Based on the wireless connection information,one or more entries stored in a database may be updated. One or moreinstructions to provide connection information to a second device may bereceived via a first device of a user. Based on the instructions and theentries, first wireless connection information for a first wirelessbeacon device may be provided to the second device. In some embodiments,the first wireless connection information may include securityinformation that enables the second user device to connect to the firstwireless beacon device. In some embodiments, the first wireless beacondevice may be selected from a set of devices based on a proximity of thefirst wireless beacon device to a location of the second device.

In some embodiments, collection, storage, and use of locationinformation arising from multiple sources may be enabled. Managers ofbeacons and receivers may provide location information to an open API.Users may access this open API to request connection information fornearby beacons. This may enable users currently in a location managed byone network provider to receive location-based services from othernetwork providers that lack beacons or registers in that location.Network providers may benefit from a more complete record of thelocation history of users, and the pairing of location data with morecomprehensive data describing interests and behavior of users. Users maybenefit from increased competition, as network providers exploit theadditional location information to provide targeted offers, directions,service information, and product information to users.

The disclosed embodiments may include a beacon registering device forproviding location services. The beacon registering device may includenon-transitory memory storing instructions. The beacon registeringdevice may also include one or more processors that execute the storedinstructions to perform operations comprising: receiving beaconinformation, the beacon information comprising connection informationfor a first beacon; updating at least one beacon entry stored in adatabase based on the received beacon information, the beacon entryincluding a beacon location, beacon connection information, and beaconmetadata; receiving a beacon request from a user device, the beaconrequest indicating a user location; selecting beacons based on thebeacon entry and the beacon request, the selected beacons including atleast the first beacon; providing selected beacon information to theuser device for registering the first beacon with the user device, theselected beacon information including the connection information for thefirst beacon.

The disclosed embodiments may also include a computer-implemented methodfor providing location services. The method may include receiving beaconinformation, the beacon information comprising connection informationfor a first beacon. The method may also include updating at least onebeacon entry stored in a database based on the received beaconinformation, the beacon entry including a beacon location, beaconconnection information, and beacon metadata. The method may also includereceiving a beacon request from a user device, the beacon requestindicating a user location. The method may also include selectingbeacons based on the beacon entry and the beacon request, the selectedbeacons including at least the first beacon. The method may furtherinclude providing selected beacon information to the user device forregistering the first beacon with the user device, the selected beaconinformation including the connection information for the first beacon.

The disclosed embodiments may further include a user device forproviding location services. The user device may include non-transitorymemory storing instructions. The user device may also include a display.The user device may further include one or more processors that executethe stored instructions to perform operations comprising: intermittentlydetermining a user location and providing the user location to a beaconregister in a beacon request; receiving beacon information from thebeacon register, the beacon information including connection informationfor beacons selected by the beacon register; registering the selectedbeacons using the connection information; receiving an indication from aregistered selected beacon; and displaying, on the display, locationservices information based on the received indication.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the disclosed embodiments, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not necessarily to scale or exhaustive.Instead, emphasis is generally placed upon illustrating the principlesof the inventions described herein. These drawings, which areincorporated in and constitute a part of this specification, illustrateseveral embodiments consistent with the disclosure and, together withthe detailed description, serve to explain the principles of thedisclosure. In the drawings:

FIG. 1 depicts an exemplary system for providing location services.

FIGS. 2A-2C depict exemplary components of a system for providinglocation services.

FIGS. 3A and 3B depict exemplary components of a system for providinglocation services.

FIGS. 3C-3H depict exemplary messages for providing location services.

FIG. 4 depicts exemplary operations in a process for providing locationservices to a user device.

FIG. 5 depicts exemplary operations in a process for providing locationservices to additional user devices.

FIG. 6 depicts exemplary operations in a process for providing locationsservices based on user analytics.

FIGS. 7A and 7B depict exemplary operations in a process for providinglocation services using on registered events.

FIG. 8 depicts an exemplary schematic of a computing device forproviding location services.

DETAILED DESCRIPTION

Reference will now be made in detail to the disclosed embodiments,examples of which are illustrated in the accompanying drawings. Whereverconvenient, the same reference numbers will be used throughout thedrawings to refer to the same or like parts. Unless otherwise defined,technical and/or scientific terms have the meaning commonly understoodby one of ordinary skill in the art. The disclosed embodiments aredescribed in sufficient detail to enable those skilled in the art topractice the disclosed embodiments. It is to be understood that otherembodiments may be utilized and that changes may be made withoutdeparting from the scope of the disclosed embodiments. Thus thematerials, methods, and examples are illustrative only and are notintended to be necessarily limiting.

FIG. 1 depicts an exemplary system for providing location services,consistent with disclosed embodiments. As described in more detailbelow, the location services are performed based on location informationof a user provided by multiple providers (e.g., network providers)and/or facilities having network coverage. For example, such providersor facilities may comprise wireless network service providers, stadiums,office buildings, hospitals, retail locations, museums, subway station,etc. The providers or facilities may operate beacons and/or receivers.The providers or facilities may also provide other types of networkservices, such as Wi-Fi coverage. In the following description, the“network providers” and “facilities” may be referred to as “providers”collectively, where it is applicable. Beacon registry 105 may beconfigured to provide beacon information, consistent with disclosedembodiments. In some embodiments, beacon registry 105 may be configuredto enable user devices to receive location signals. For example, beaconregistry 105 may be configured to provide connection information forbeacons, consistent with disclosed embodiments. The beacons may beselected from a database of beacons maintained by beacon registry 105.As described below with respect to FIGS. 2A and 3A, beacon registry 105may be configured to maintain the database according to submissionsreceived from one or more of provider systems, beacon systems, beaconsand receivers, and user devices.

In some embodiments, the user device may be configured to notify beaconsystem 120 of the presence and location of user 110 a. The envisionedsystems and methods then enable applications to gather data acrossmultiple beacons/receivers managed by multiple distinct beacon systems,locations, and providers. This data may be used to identify the locationof the user indoors, where GPS location may not be available, identifythe manager of surrounding beacons/receivers (e.g., a network providerassociated with beacon system 120), identify specific providers,identify other users that are or were near the beacon, manage a userlocation history to better determine the interests and behavior ofusers, and provide directions to users. In some embodiments, use ofbeacon registry 105 by one or more of users (e.g., user 110 a) andprovider systems (e.g., provider system 125) may require payment of afee. The fee may be paid to the owners of the beacons/receivers, and tothe owners of other contributed data sources, such as transactioninformation.

Beacon registry 105 may be configured to receive beacon information,consistent with disclosed embodiments. Beacon information may bereceived from one or more of a beacon system, such as beacon system 120,and a beacon or receiver, such as beacon/receiver 115. Beacon registry105 may be configured to receive beacon requests. Beacon requests may bereceived from a user device, such as user device 110. Beacon registry105 may be configured to receive user messages. User messages may bereceived from a user device, such as user device 110. Beacon registry105 may be configured to receive provider information requests. Providerinformation requests may be received from a provider system, such asprovider system 125. Beacon registry 105 may be configured to selectinformation about beacons based on requests. Beacon registry 105 may beconfigured to provide the selected beacon information. For example, theselected beacon information may be provided to a user device, such asuser device 110. The content of the messages provided and received bybeacon registry 105 is described in detail with regards to FIGS. 3C-3H.

Beacon registry 105 may comprise one or more computing systemsconfigured to execute software instructions stored on one or more memorydevices to perform one or more operations consistent with the disclosedembodiments. For example, beacon registry 105 may include one or morememory device(s) storing data and software instructions and one or moreprocessor(s) configured to use the data and execute the softwareinstructions to perform server-based functions and operations known tothose skilled in the art. Beacon registry 105 may include one or morecomputers, workstations, servers, or networked collections of servers,consistent with disclosed embodiments. Beacon registry 105 may bestandalone, or it may be part of a subsystem, which may be part of alarger system. For example, beacon registry 105 may comprise a componentof an overall provider system. As a non-limiting example, beaconregistry 105 may comprise a component of a provider system associatedwith a financial services provider.

Beacon system 120 may be configured to implement a web service or a filesystem service. As an additional example, the web service may beimplemented with one or more widely used web-service protocols, such asJavaScript Object Notation Web-Service Protocol (JSON-WSP) and SimpleObject Access Protocol-Web Services Description Language (SOAP-WSDL). Invarious aspects, the web service may be implemented according to arepresentational state transfer (REST) web service architecture. One ofskill in the art would recognize that numerous other web services andfile system services may be used, and that this description is notintended to be limiting. In some aspects, beacon system 120 may beconfigured to expose an application programming interface. Beacon system120 may be configured to provide and receive information from othercomponents of location system 100 through the application programminginterface.

User device 110 may be configured to interact with components oflocation system 100 to receive location services, consistent withdisclosed embodiments. In some embodiments, user device 110 may beconfigured to provide a beacon request to beacon registry 105. In someaspects, user device 110 may be configured to receive information aboutselected beacons from beacon registry 105. User device 110 may beconfigured to use the selected beacon information in processing signalsfrom beacons or receivers. In certain aspects, user device 110 may beconfigured to provide user messages to one or more of beacon registry105 and a second user device (not shown). The second user device may beconfigured to process signals from beacons or receivers based on theuser messages. In various aspects, user device 110 may be configured toreceive signals from beacon/receiver 115. In some aspects, in responseto the received signals, user device 110 may be configured tocommunicate with one or more of the beacon registry 105, beacon/receiver115, beacon system 120, and provider system 125.

User device 110 may include, as a non-limiting example, a consumerelectronics device such as a smartphone, tablet, netbook, electronicreader, wearable display (e.g., electronic glasses), smart watch,personal digital assistant, personal computer, laptop computer, trackingdevice (e.g., Bluetooth tag), and/or other types of electronics orcommunication devices. A non-limiting example of such a computing deviceis provided below in FIG. 8 . In some embodiments, user device 110 maybe configured to support Bluetooth low energy device profiles. Forexample, user device may be configured to act according to one or moreof a broadcaster, observer, peripheral, or central profile in aBluetooth connection.

User 110 a may operate user device 110 or direct operation of userdevice 110, consistent with disclosed embodiments. User 110 a mayoperate user device 110 to communicate with one or more components oflocation system 100, consistent with disclosed embodiments. In someembodiments, user 110 a may interact with user device 110 whilenavigating an environment, such as a retail environment (e.g., a storeor a mall), a public building (e.g., a museum, hospital school, orgovernmental building), or a worksite (e.g., a factory or corporateoffice). User 110 a may operate user device 110 to receive locationservices information.

In some embodiments, one or more components of location system 100 maybe configured to associate user information with user 110 a. The one ormore components may be configured to associate user information withuser device 110. As a non-limiting example, the associated userinformation may comprise account information (e.g., financial servicesaccount information), demographic information, user preferences, andsocial networking activity. As described in greater detail below, theoperations of location system 100 may depend on the user informationassociated with user device 110.

Beacons/Receivers 115 may be configured to interact with one or morecomponents of location system 100. In some embodiments,beacons/receivers 115 may be configured to interact with user device110. For example, beacons/receivers 115 may be configured to detect thepresence of and/or communicate with a proximate user device (e.g., userdevice 110). In some aspects, beacons/receivers 115 may comprise one ormore beacons, such as Bluetooth low energy beacons, radio frequencyidentification (RFID) tags, wireless transmitters and/or any other typeof transmitter configured to provide a location signal for detection byuser device 110. In various aspects, beacons/receivers 115 may compriseone or more receivers, such as Bluetooth low energy devices, radiofrequency identification (RFID) receivers, wireless receivers and/or anyother type of receiver configured to receive a location signal providedby user device 110. In some embodiments, beacons/receivers 115 may beconfigured to support Bluetooth low energy device profiles. For example,beacons/receivers 115 may be configured to act according to one or moreof a broadcaster, observer, peripheral, or central profile in aBluetooth connection. Location system 100 may be configured based on theassumption that the location of user device 110 indicates the locationof user 110 a. In some exemplary embodiments, beacons/receivers 115 mayinclude one or more processor(s) configured to access data and/orexecute software instructions stored in memory to perform one or moreprocesses consistent with the disclosed embodiments. In some exemplaryembodiments, beacons/receivers 115 may be located entirely or partiallywithin an environment managed by beacon system 120.

In some embodiments, a sensor identifier may be associated with each ofbeacons/receivers 115. In certain aspects, these sensor identifiers maycomprise numeric or alphanumeric strings. Components of location system100 may be configured to use sensor identifiers to locate user device110. In some exemplary embodiments, a sensor identifier may be aBluetooth identifier corresponding to one of beacons/receivers 115. Inother exemplary embodiments, sensor identifier may include a Bluetoothprofile associated with beacons/receivers 115. In yet other exemplaryembodiments, one or more sensor identifiers may include a coordinateposition of one or more of beacons/receivers 115. In some aspects, thiscoordinate position may be relative to an origin disposed within anenvironment associated with beacon system 120. For example, the originmay correspond to a service location within the environment, such as apoint of service; an access point of the environment; or a subdivisionof the environment, such as a department of a store, a unit of ahospital or a manufacturing or loading bay of a worksite, such as afactory or warehouse.

Beacon System 120 may be configured to complement or supplementbeacons/receivers 115, consistent with disclosed embodiments. In someembodiments, beacon system 120 may be configured to communicate with oneor more of beacons/receivers 115. For example, beacon system 120 mayconfigure beacons/receivers 115 for use in location system 100. As anadditional example, beacon system 120 may be configured to receiveinformation from one or more of beacons/receivers 115. In some aspects,this received information may have originally been provided by userdevice 110. In certain embodiments, beacon system 120 may be configuredto communicate with user device 110. For example, beacon system 120 maybe configured to receive information from user device 110. In someaspects, the received information may have been provided by the one ormore of beacons/receivers 115. Beacon system 120 may be configured toprovide location services information based on the received information.

Beacon system 120 may comprise one or more computing systems configuredto execute software instructions stored on one or more memory devices toperform one or more operations consistent with the disclosedembodiments. For example, beacon system 120 may include, one or morememory device(s) storing data and software instructions and one or moreprocessor(s) configured to use the data and execute the softwareinstructions to perform server-based functions and operations known tothose skilled in the art. Beacon system 120 may include one or morecomputers, workstations, servers, or networked collections of servers,consistent with disclosed embodiments. Beacon system 120 may bestandalone, or it may be part of a subsystem, which may be part of alarger system. For example, beacon system 120 may comprise a componentof an overall provider system. In certain aspects, beacon, system 120and beacons/receivers 115 may be provided by a common entity. As anon-limiting example, a retailer may place beacons/receivers 115 in aretail environment. The retailer may implement a provider systemcomprising beacon system 120. Beacon system 120 may be configured toprovide location services functionality for user devices (e.g., userdevice 110) interacting with beacons and receivers (e.g.,beacon/receiver 115).

Beacon system 120 may be configured to implement a web service or a filesystem service. As an additional example, the web service may beimplemented by one or more of JSON-WSP and SOAP-WSDL. In variousaspects, the web service may be implemented according to arepresentational state transfer (REST) web service architecture. One ofskill in the art would recognize that numerous other web services andfile system services may be used, and that this description is notintended to be limiting. In some aspects, beacon system 120 may beconfigured to expose an application programming interface. Beacon system120 may be configured to provide and receive information from othercomponents of location system 100 through the application programminginterface.

Provider system 125 may be configured to use location system 100 tomanage interactions with user device 110. In some embodiments, providersystem 125 may be configured request user information from beaconregistry 105. As described in greater detail below, such userinformation may concern individual users of location system 100 or usersof location system 100 considered in the aggregate. In certainembodiments, provider system 125 may be configured to provide providertrigger requests to beacon registry 105. As described in greater detailbelow, such provider trigger requests may be specific to individualusers or may concern categories of users of location system 100.

Provider system 125 may use location system 100 to providecontext-sensitive information to user device 110, consistent withdisclosed embodiments. As a non-limiting example, a retailer may placebeacons/receivers 115 in a retail environment. The placement of thesebeacons may correspond to certain goods and services. For example, thebeacons may be placed near certain goods, like clothes, or in locationsindicative of certain services, like restaurants, movie theaters, oramusement parks. A provider, e.g., a merchant, associated with providersystem 125 may provide competitive or related goods and services. Asnon-limiting examples, the retailer and the merchant may sell competingbrands of clothing, or the retailer may sell fatty food and the merchantmay sell dieting products. The merchant may use the information aboutthe whereabouts of user 110 a to inform offers provided to user 110 a.For example, provider system 125 may be configured to provide offersindicating discounts, special promotions, or directions to locationswhere the merchant provides the goods and services.

Provider system 125 may comprise one or more computing systemsconfigured to execute software instructions stored on one or more memorydevices to perform one or more operations consistent with the disclosedembodiments. For example, provider system 125 may include one or morememory device(s) storing data and software instructions and one or moreprocessor(s) configured to use the data and execute the softwareinstructions to perform server-based functions and operations known tothose skilled in the art. Provider system 125 may include one or morecomputers, workstations, servers, or networked collections of servers,consistent with disclosed embodiments. Provider system 125 may bestandalone, or it may be part of a subsystem, which may be part of alarger system. For example, provider system 125 may comprise a componentof an overall merchant system. In certain aspects, provider system 125may be provided by an entity distinct from one or more of beacon system120, beacon registry 105, and beacon/receiver 115.

Provider system 125 may be configured to implement a web service or afile system service. As an additional example, the web service may beimplemented one or more of JSON-WSP and SOAP-WSDL. In various aspects,the web service may be implemented according to a representational statetransfer (REST) web service architecture. One of skill in the art wouldrecognize that numerous other web services and file system services maybe used, and that this description is not intended to be limiting. Incertain aspects, provider system 125 may be configured to provide andreceive information from other components of location system 100 usingthe web service.

Network 130 may enable the components of location system 100 tocommunicate, consistent with disclosed embodiments. Network 130 mayinclude one or more wired and/or wireless networks. For example, network130 may include a cellular network, a public land mobile network, alocal area network, a wide area network, a metropolitan area network afixed telephone network, an intranet, the Internet, a fiber optic-basednetwork, a Bluetooth network, a radio network, a near-field network, orany other type of electronics communications network known to one ofskill in the art. Components of location system 100 may be configured tocommunicate using network 130.

FIGS. 2A-2C depict exemplary components of a system for providinglocation services, consistent with disclosed embodiments. In someaspects, as shown in FIG. 2A, beacon registry 105 may comprise database201 and analytics engine 203. Beacon registry 105 may be configured tostore information received from components of location system 100 indatabase 201. In some embodiments, database 201 may be implemented as ahierarchical database, relational database, object-oriented database,document-oriented database, graph-oriented database, key-value database,or any combination thereof. In some aspects, database 201 may bedistributed across one or more devices. One of skill in the art wouldrecognize many suitable implementations of database 201, and theenvisioned embodiments are not intended to be limited to a particularimplementation.

Beacon registry 105 may be configured to use analytics engine 203 toprocess data stored in database 201, consistent with disclosedembodiments. In some aspects, analytics engine 203 may be configured togenerate responses to queries received by beacon registry 105 fromcomponents of location system 100. For example, analytics engine 203 maybe configured to generate user information for provision to one or moreof provider system 125 and beacon system 120. In certain aspects,analytics engine 203 may be configured to generate recommendations forprovision to user device 110. As a non-limiting example, analyticsengine 203 may comprise one or more programs interacting with astatistical package, such as SAS Enterprise Miner™, Statistica, SPSS®,Revolution R Enterprise, or similar enterprise statistical software. Oneof skill in the art would recognize many suitable implementations ofanalytics engine 203, and the envisioned embodiments are not intended tobe limited to a particular implementation.

In some embodiments, as shown in FIG. 2B, user device 110 may compriseapplication 205 and application memory 207. In certain aspects, userdevice 110 may be configured to execute application 205 as a process onuser device 110. As described in greater detail below, application 205may be configured to provide a user interface for interacting withcomponents of location system 100. For example, application 205 may beconfigured to cause user device 110 to contact other components oflocation system 100, such as beacon registry 105, beacon/receiver 115,beacon system 120, or provider system 125. For example, user device 110may be configured by the location application to provide beacon requeststo beacon registry 105. As an additional example, user device 110 may beconfigured by the location application to provide user messages to oneor more components of location system 100. User device 110 may beconfigured by the location application to receive location serviceinformation. Location service information may include directions to aparticular location, such as a particular store, clinic, facility,parking spot, or point of interest.

*Application memory 207 may comprise a memory on user device 110configured to store information relating to location system 100. Forexample, as describe below, application memory 207 may be configured tostore information regarding user 110 a. In some aspects, application 205may be configured to store, retrieve, modify, and delete information inapplication memory 207. Application memory 207 may be implemented usingone or more of non-transitory solid state memory, hard disk memory,memory registers, cache, or other memory resources of user device 110.

In some aspects, as shown in FIG. 2C, provider system 125 may compriserecommendation engine 209. In some aspects, recommendation engine 209may be configured to generate offers based on information received byprovider system 125 from components of location system 100. For example,recommendation engine 209 may be configured to generate recommendedoffers for user device 110 based on user information possessed byprovider system 125, and/or received from one or more of user device 110and beacon registry 105. As a non-limiting example, recommendationengine 209 may comprise one or more programs interacting with astatistical package, such as SAS Enterprise Miner™, Statistica, SPSS®,Revolution R Enterprise, or similar enterprise statistical software. Oneof skill in the art would recognize many suitable implementations ofrecommendation engine 209, and the envisioned embodiments are notintended to be limited to a particular implementation.

FIGS. 3A and 3B depict exemplary components of a system for providinglocation services. As shown in FIG. 3A, database 201 may comprise beaconentries, such as beacon entry 301, and user entries, such as user entry303. Beacon registry 105 may be configured to update one or more ofbeacon entries and user entries based on information received from othercomponents of location system 100. In certain aspects, beacon registry105 may be configured to store, retrieve, modify, and/or delete beaconentries and user entries based on received information.

Beacon entries may store data and instructions concerning beacons orreceivers, such as beacons/receivers 115. In some embodiments, a beaconentry, such as beacon entry 301, may correspond to one or more beaconsand/or receivers. For example, database 201 may be configured with abeacon entry for each beacon or receiver in location system 100. Incertain embodiments, database 201 may be configured with a beacon entryfor multiple beacons and/or receivers. For example, database 201 may beconfigured with a beacon entry for beacons and/or receivers of adepartment, store, beacon system, retailer, and/or geographical area.

Beacon entries, such as beacon entry 301, may comprise one or more oflocation 311, connection information 313, and beacon metadata 315. Insome aspects, location 311 may comprise one or more of data andinstructions for determining the physical location of at least onebeacon and/or receiver. In certain aspects, location 311 may be definedin absolute terms. For example, location 311 may be defined using ageographic coordinate system, such as latitude and longitude, or GlobalPositioning System coordinates. In various aspects, location 311 may bedefined in relative terms. For example, location 311 may be definedrelative to the entrance of a store, hospital, mall, park, highway, orother environment (e.g., 10′ north, 5′ east of southwest mall entrance).Similarly, location 311 may be defined relative to a cell tower ormultiple cell towers (e.g., cell tower triangulation).

Connection information 313 may comprise one or more of data andinstructions for managing connections between a user device, such asuser device 110, and at least one beacon and/or receiver. Connectioninformation 313 may include security and identity information necessaryfor the user device 110 to establish a connection with a beacon and/orreceiver. For example, connection information 313 may include data orinstructions enabling user device 110 to connect to a particular beaconand/or receiver. For example, connection information 313 may include adevice identifier, such as a universally unique identifier (UUID) orsimilar identifier. In some aspects, connection information 313 maycomprise data or instructions enabling user device 110 to connect tomultiple beacons and/or receivers.

Beacon metadata 315 may comprise data or instructions concerning one ormore beacons and/or receivers. This information may be described withregard to origin, consistent with disclosed embodiments. In someembodiments, beacon metadata 315 may comprise manager metadata 316,user-submitted metadata 317, and confidence rating 318.

In some aspects, beacon registry 105 may be configured to update beaconentries with data or instructions regarding at least one beacon providedby the entity managing the at least one beacon, such as manager metadata316. For example, where a retailer controls one or more of beacon system120 and beacons/receivers 115, the retailer may provide manager metadataregarding the beacons/receivers 115. As an additional example, managermetadata may be provided by the entity controlling beacon registry 105.Non-limiting examples of manager metadata may include informationregarding the location, purpose, surroundings, and functionality of thebeacon. Similarly, manager information may include store department,beacon owner (e.g., owner, retail location name), photos of the locationand the surrounding area. For example, a retailer may use locationsystem 100 to provide manager metadata indicating that a brand of bluejeans is available near a particular beacon.

In some aspects, beacon registry 105 may be configured to update beaconentries with data or instructions received from users of location system100, such as user-submitted metadata 317. As a non-limiting example,user-submitted metadata 317 may include a description of a beacon, suchas a note, annotation, review, comment, or similar information. Forexample, beacon registry 105 may be configured to receive user messagesfrom user devices indicating products in the vicinity of one or more ofbeacons/receivers 115. As a non-limiting example, beacon register 105may be configured to store a message provided by a user of locationsystem 100, a such as a message indicating the availability of aparticular brand of blue jeans near one of beacons/receivers 115, orthat a particular vending machine, automatic teller, airline check-interminal, ticketproviding machine, or similar destination device nearone of beacons/receivers 115 was not working.

In some aspects, beacon registry 105 may be configured to updateconfidence rating 318 of beacon entries based on data or instructionsreceived from users of location system 100. In some embodiments,confidence rating 318 may depend on one or more rankings. In certainaspects, the rankings may indicate the general satisfaction of userswith a beacon and/or receiver. For example, users may provide lowrankings when the beacon is a “spoof” beacon that attempts to mimic abeacon of a reputable retailer. As an additional example, users mayprovide low rankings when the goods and/or services associated with thebeacon are low-quality or undesirable. Overall confidence ratings may becalculated from individual rankings according to methods known to one ofskill in the art.

Beacon registry 105 may be configured to restrict the ability of usersto provide rankings, for example, by requiring users to register, createa profile, or otherwise identify themselves. As would be appreciated byone of skill in the art, beacon registry 105 may be configured to enableone or more of the manager of beacon registry 105 and the manager ofbeacons/receivers 115 and/or beacon system 120 to modify, delete,enable, disable, and/or erase user-submitted metadata 317 and confidencerating 318.

Confidence rating 318 may depend on sources of beacon information,consistent with disclosed embodiments. For example, beacon registry 105may be configured to assign a lower confidence rating 318 to beaconentries for beacon systems with (i) few beacons registered with beaconregistry 105, (ii) beacons registered relatively recently (for example,within the past day, week, or month), or (iii) a beacon systemassociated with an unknown entity. As an additional example, beaconregistry 105 may be configured to assign a higher confidence rating 318to beacon entries for beacon systems with (i) many beacons registeredwith beacon registry 105, (ii) beacons registered for relatively longtime (for example, greater than a month, six months, or a year), or(iii) a beacon system associated with a known entity (for example, amajor retailer or financial institution).

Confidence rating 318 may depend on the freshness of the beaconinformation, consistent with disclosed embodiments. For example, beaconregistry 105 may be configured to assign a lower confidence rating 318to beacon entries that have not been updated or modified within acertain period of time (for example, entries that have not been modifiedwithin the past day, week, or month). As an additional example, beaconregistry 105 may be configured to assign a higher confidence rating 318to beacon entries for beacon systems that have been updated within acertain period of time (for example, entries that have been modifiedwithin the past hour, day, week, or month).

Confidence rating 318 may depend on the frequency with which the beaconinformation is updated, consistent with disclosed embodiments. Forexample, beacon registry 105 may be configured to assign a lowerconfidence rating 318 to beacon entries that have not been updated ormodified frequently (for example, at least once a month). As anadditional example, beacon registry 105 may be configured to assign ahigher confidence rating 318 to beacon entries for beacon systems thathave been updated or modified frequently (for example, at least once aday or once a month).

User entries may store data and instructions concerning users oflocation system 100, such as user 110 a, consistent with disclosedembodiments. In some embodiment, user entries may correspond to oneuser. In certain embodiments, user entries may correspond to multipleusers. In some aspects, beacon registry 105 may be configured to createuser entries based on user indications of a desire to create a userprofile. For example, users of location system 100 may interact withbeacon registry 105 to create user entries. As a non-limiting example,application 205 may be configured to enable users of location system 100to manage user entries with beacon registry 105. In certain aspects,beacon registry 105 may be configured to create user entries, such asuser entry 303, absent user indications of a desire to create a userprofile. For example, beacon registry 105 may be configured toautomatically create a user entry (e.g., user entry 303) correspondingto users of location system 100. In certain aspects, user entries maycorrespond to user devices (e.g., user device 110) rather than users.

User entry 303 may comprise user location history 321, consistent withdisclosed embodiments. User location history 321 may comprise dataand/or instructions indicating a time history of user locations. In someembodiments, user location history 321 may be updated when user device110 contacts beacon registry. For example, application 205 may beconfigured to cause user device 110 to provide its current location uponrequesting beacon information from beacon registry 105. In someembodiments, user location history 321 may be updated intermittently.For example, application 205 may be configured to periodically providethe current location of user device 110, when possible. As anon-limiting example, application 205 may be configured to provide thecurrent location of the user device to the beacon registry every hour,while the user device is powered on and connected to network 130.Because the user device may not be consistent powered on and connectedto network 130, the current location of user device 110 may consequentlybe provided intermittently. In some embodiments, application 205 may beconfigured to provide the current location of the user device to thebeacon registry periodically, and upon requesting beacon informationfrom beacon registry 105. Stored locations of user location history 321may comprise absolute or relative locations, as described above withregards to location 311.

User entry 303 may comprise user metadata 323, consistent with disclosedembodiments. User metadata 323 may comprise data and/or instructionsabout the user associated with user entry 303 (e.g., user 110 a). Insome embodiments, user metadata 323 may comprise one or more oftransaction history 324, demographics 325, preferences 326, and socialactivity 327. In some aspects, beacon registry 105 may be configured toobtain user metadata 323 from users (e.g., user 110 a). In certainaspects, one or more components of user metadata 323 may be obtainedfrom scraping websites; from third-party information providers; fromaccount information maintained by an entity associated with beaconregistry 105, such as a financial services provider associated withbeacon registry 105; or from similar information sources known to one ofskill in the art.

Transaction history 324 may comprise a transaction history associatedwith a user, consistent with disclosed embodiments. In certain aspects,the transaction history may comprise transactions originating in one ormore accounts associated with the user. The accounts may be financialservices accounts, such as checking, savings, credit card accounts, orsimilar accounts known to one of skill in the art. In some aspects, thetransaction history may comprise transactions of a user terminating inone or more accounts associated with one or more providers, e.g.,merchants. For example, transaction history 324 may comprisetransactions between a user and a particular merchant. Transactionhistory 324 may include one or more of transaction dates, amounts, andcategory codes indicating a type of transferee.

Demographics 325 may comprise demographic information associated with auser, consistent with disclosed embodiments. For example, demographicinformation may include one or more of age, sex, home address, workaddress, employment status, household income, or similar demographicinformation known to one of skill in the art.

Preferences 326 may comprise data or instructions expressing userpreferences, consistent with disclosed embodiments. In some aspects,beacon registry 105 may be configured to receive preferences 326 fromuser device 110. For example, application 205 may be configured toprovide indications of user preferences to beacon registry 105 inresponse to input received through a graphical user interface from user110 a. In some embodiments, beacon registry 105 may be configured toprovide beacon information, to user device 110 according to restrictionsexpressed in preferences 326. In some, aspects, these restrictions mayconcern location. For example, preferences 326 may bar providing beaconinformation for beacons in certain locations. These locations may beuser-defined. In certain aspects, these restrictions may concern beaconmetadata. For example, preferences 326 may bar providing beaconinformation for beacons with confidence ratings 318 lower than a certainthreshold. In certain embodiments, beacon registry 105 may be configuredto provide user information to provider systems (e.g., provider system125) according to restrictions expressed in preferences 326. Forexample, preferences 326 may generally bar providing user information.As an additional example, preferences 326 may bar providing one or moreof transaction history 324, or data derived from transaction history324, such as summary data; demographics 325; preferences 326; and socialactivity 327. Preferences 326 may permit providing user information tospecified providers.

Social activity 327 may comprise social networking activity tracked bybeacon registry 105. For example, social activity 327 may comprise arecord of activity using one or more social media applications likeFacebook, Twitter, Pinterest, Snapchat, Vine, or similar applications.Beacon registry 105 may be configured to receive the record of activityfrom user device 110, for example, through application 205, or fromthird-party information providers.

As shown in FIG. 3B, user device 110 may be configured with applicationmemory 207, as described above with respect to FIG. 2C. In someembodiments, user device 110 may be configured to store in applicationmemory 207 one or more of user location history 331 and user metadata333. In some embodiments, user device 110 may be configured to store oneor more components of user location history 331 and user metadata 333additionally or alternatively to beacon registry 105 storingcorresponding user location history 321 and user metadata 323 indatabase 201. For example, in some embodiments, user device 110 maystore one or more components of user metadata 333 in place of beaconregistry 105 storing one or more corresponding components of usermetadata 323. For example, user device 110 may be configured to store inapplication memory 207 one or more of transaction history 334,demographics 335, preferences 336, and social activity 337 in place ofbeacon registry 105 storing transaction history 324, demographics 325,preferences 326, and social activity 327 on database 201. Thecomposition of user location history 331, transaction history 324,demographics 325, preferences 326, and social activity 327 may resemblethe composition of user location history 321, transaction history 324,demographics 325, preferences 326, and social activity 327,respectively, as described above with regards to FIG. 3A.

Location services information 338 may comprise one or more of offers,directions, and product information provided for user 110 a. Application205 may be configured to generate at least a portion of locationservices information 338. For example, application 205 may be configuredto download offers and product information. As a non-limiting example,application 205 may be configured to download offers and productinformation from one or more of provider system 125, beacon system 120,and beacon registry 105. In some embodiments, application 205 may beconfigured to generate offers and product information from downloadeddata and instructions.

FIGS. 3C-3H depict exemplary messages for providing location services,consistent with disclosed embodiments. As would be recognized by one ofskill in the art, the envisioned systems and methods are not intended tobe limited to the particular messages described. Components of locationsystem 100 may be configured to exchange, without departing from theenvisioned embodiments, additional messages, fewer messages, messagescombining contents of the disclosed messages, or messages distributingamong multiple messages the contents of the disclosed messages.

FIG. 3C discloses an exemplary beacon information message 340 consistentwith disclosed embodiments, in some embodiments, beacon registry 105 maybe configured to receive beacon information message 340. Beacon registry105 may be configured to receive beacon information message 340 from abeacon system, such as beacon system 120. In certain aspects, beaconsystem 120 may be configured to provide beacon information message 340using the web services API exposed by beacon registry 105. Beaconregistry 105 may be configured to create, modify, or delete one or morebeacon entries (e.g., beacon entry 301) in response to receiving beaconregistry 105. Beacon information message 340 may comprise one or more ofbeacon location update 341, connection information update 343 and beaconmetadata update 345, consistent with disclosed embodiments.

As described above with respect to FIG. 3A, beacon location update 341may comprise data or instructions indicating an absolute or relativelocation of the one or more beacons and/or receivers associated with thebeacon entry. In some aspects, beacon location update 341 may indicatean initial position of at least one beacon. In various aspects, beaconlocation update 341 may indicate a new position of at least one beacon.

Connection information update 343 may comprise data or instructionsenabling a user device to connect to a particular beacon and/orreceiver, consistent with disclosed embodiments. For example, connectioninformation update 343 may include a device identifier, such as a UUIDor similar identifier. In some aspects, connection information update343 may comprise data or instructions enabling a user device to connectto multiple beacons and/or receivers. In some aspects, connectioninformation update 343 may include initial connection information for atleast one beacon and/or receiver. In various aspects, connectioninformation update 343 may indicate new connection information for atleast one beacon and/or receiver.

Beacon metadata update 345 may comprise data or instructions enabling auser device to connect to a particular beacon and/or receiver,consistent with disclosed embodiments. For example, beacon metadataupdate 345 may include manager metadata, as described with regards toFIG. 3A. In some aspects, beacon metadata update 345 may create managermetadata for the at least one beacon and/or receiver. In variousaspects, beacon metadata update 341 may update, supplement, modify,and/or delete existing manager metadata for the at least one beaconand/or receiver.

FIG. 3D discloses an exemplary beacon request message 350 consistentwith disclosed embodiments. In some embodiments, application 205 may beconfigured to cause user device 110 to provide a beacon request message350 to beacon registry 105. In some embodiments, user device 110 may beconfigured to provide beacon request message 350 using the web servicesAPI exposed by beacon registry 105. In some embodiments, beacon requestmessage 350 may comprise one or more of user location 351, useridentifier 353, and user update metadata 355.

User location 351 may comprise data or instructions indicating thelocation of user device 110. As described above with regards to FIG. 3A,the location of user device 110 may comprise an absolute location or arelative location. In some aspects, beacon registry 105 may beconfigured to update user location history 321 based on the data orinstructions comprising user location 351.

User identifier 353 may comprise identifying data or instructions. Insome aspects, user identifier 353 may identify user 110 a. For example,user identifier 353 may comprise a username and password, InternationalMobile Subscriber Identity (IMSI), or similar data for identifying user110 a known to one of skill in the art. In certain aspects, useridentifier 353 may identify user device 110. For example, useridentifier 353 may comprise a Mobile Station International SubscriberDirectory Number (MSISND), a media access control address (MAC address),or similar data for identifying user device 110. In some embodiments,beacon registry 105 may be configured to determine user entry 303 basedon user identifier 353.

User update metadata 355 may comprise a description of a beacon, such asone or more of a note, annotation, review, comment, or similarinformation. In some implementations, user update metadata 355 maycomprise an identifier of one or more beacon entries in database 201.For example, user update metadata may include a comment that particularmerchandise is near a beacon and/or receiver, or that a destinationdevice near a beacon and/or receiver, such as an ATM, ticket dispenser,airline check-in terminal, or similar device, is broken. In someembodiments, beacon registry 105 may be configured to update theuser-submitted metadata 317 for a beacon entry (e.g., beacon entry 301)based on user update metadata 355.

FIG. 3E discloses an exemplary selected beacon message 360 consistentwith disclosed embodiments. In some embodiments, beacon registry 105 maybe configured to provide one or more selected beacon messages 360 touser device 110. In some aspects, beacon registry 105 may be configuredto provide the one or more selected beacon messages 360 to user device110 in response to receiving a beacon request message 350. In someembodiments, selected beacon message 360 may comprise one or more ofconnection information 361 and location services information 363.

Connection information 361 may comprise data and instructions enablinguser device 110 to connect with one or more selected beaconsand/receivers, consistent with disclosed embodiments. For example,connection information 361 may comprise connection information stored inbeacon registry 105 for beacons meeting selection criteria. In certainembodiments, beacon registry 105 may be configured to select beaconsbased on proximity. For example, beacon registry 105 may be configuredto select beacons based on the distance between the location of userdevice 110 and the location of the beacon. Beacon registry 105 may beconfigured to use user location 351, provided by the beacon request, asthe location of user device. Beacon registry 105 may be configured touse location 311 as the location of the at least one beacon and/orreceiver. In some embodiments, beacon registry 105 may be configured toselect beacons based on user preferences. In certain aspects, thesepreferences may be expressed in database 201. For example, they may beexpressed in user entry 303. As an additional example, the userpreferences may be expressed in preferences 326. In some aspects, theuser preferences may be expressed in beacon request message 350. Userpreferences may include preferences for one or more of an entityassociated with a beacon (e.g., a major retailer or financialinstitution), for a category of good or service associated with thebeacon (e.g., the user may prefer beacons associated with clothingstores), for a category of offer (e.g., the user may prefer beaconsassociated with sales), for a confidence rating of a beacon (e.g., theuser may prefer beacons having with a confidence rating better than aspecified rating). In some embodiments, beacon registry 105 may beconfigured to provide connection information 361. This connectioninformation may comprise connection information for beacons meeting theproximity and preference criteria.

Location services information 363 may comprise one or more of offers,directions, and product information, consistent with disclosedembodiments. Beacon registry 105 may be configured to provide locationservices information 363 in response to beacon request message 350. Insome embodiments, location services information 363 may be derived atleast in part from beacon information stored in beacon registry 105. Forexample, location services information 363 may be derived from beaconmetadata 315 of beacon entries for selected beacons. As an additionalexample, location services information 363 may be derived from one ormore of manager metadata 316 and user-submitted metadata 317. In certainembodiments, location services information 363 may be derived at leastin part from information retrieved from one or more beacon systemsassociated with the selected beacons.

FIG. 3F discloses an exemplary user message 370 consistent withdisclosed embodiments. In some embodiments, user device 110 may beconfigured to provide user message 370 to one or more of beacon registry105, beacon system 120, provider system 125, and second user device 112.In some embodiments, user message 370 may comprise one or more of useridentifier 371 and user message payload 373.

As described above with regard to user identifier 353, user identifier371 may comprise identifying data or instructions. In some aspects, useridentifier 371 may identify user 110 a. For example, user identifier 371may comprise a username and password, or International Mobile SubscriberIdentity (IMSI), or similar data for identifying user 110 a known to oneof skill in the art. In certain aspects, user identifier 371 mayidentify user device 110. For example, user identifier 371 may comprisea Mobile Station International Subscriber Directory Number (MSISND), amedia access control address (MAC address), or similar data foridentifying user device 110. In some embodiments, beacon registry 105may be configured to determine user entry 303 based on user identifier371.

User message payload 373 may depend on the target of user message 370.In some aspects, user message 370 may comprise a request to shareconnection information for at least one beacon and/or receiver withsecond user device 112, and user message payload 373 may compriseconnection information for the shared at least one beacon and/orreceiver. User message payload 373 may also comprise user metadataregarding the shared at least one beacon and/or receiver, as describedabove with regards to FIG. 3A. In certain aspects, user message 370 maycomprise a request for location service information based on anindication received from one of beacons/receivers 115. For example, therequest for location services may be provided to one or more of beaconregistry 105, beacons/receivers 115, beacon system 120, and providersystem 125. User message payload 373 may then comprise one or more oflocation information, preference information, and an indication ofrequested location services.

FIG. 3G discloses an exemplary provider information request 380consistent with disclosed embodiments. In some embodiments, beaconregistry 105 may be configured to receive provider information request380. Beacon registry 105 may be configured to receive providerinformation request 380 from one or more of beacon system 120 andprovider system 125. In some aspects, provider information request 380may comprise a request for aggregate information concerning users oflocation system 100. For example, provider information request 380 mayconcern a number of users that traversed a location near a beacon, or anamount of transactions occurring in the vicinity of a beacon. As anadditional example, provider information request 380 may concern thetypical demographics of a user traversing a location near a beacon. Oneof skill in the art would recognize that additional queries arepossible, and the disclosed examples of provider information requestsare not intended to be limiting.

In certain aspects, provider information request 380 may comprise arequest for information regarding one or more specific users of locationsystem 100. For example, provider information request 380 may concern auser associated with a user device that recently provided a beaconrequest message 350. In some aspects, provider information request 380may concern one or more of the user location history, transactionhistory, demographics, and the social media activity for this user. Inresponse to provider information request 380, beacon registry 105 may beconfigured to provide this information to the extent permitted bypreferences 326. The response to the provider information request 380may enable a provider system (e.g., provider system 125) to assess user110 a. For example, a provider system may be configured to determinethat a user is a potential customer. As an additional example, aprovider system, may be able to determine that user 110 a is a new,repeat, or multiple-repeat customer of a competitor. As an additionalexample, a provider system may be configured to identify facilitiespreviously visited by user 110 a based on user location history data.The provider system may be configured to then estimate a desired serviceor good based on the facilities previously visited by user 110 a. Insome embodiments, the provider system may be configured to send messagesto user device 110 based on such assessments. For example, the providersystem may be configured to provide offers and directions to potentialcustomers. As an additional example, the provider system may beconfigured to offer competing products based on the estimated desiredservice or good.

FIG. 3H discloses an exemplary provider trigger request 390, consistentwith disclosed embodiments. In some aspects, beacon registry 105 may beconfigured to receive provider trigger request 390. In some embodiments,the provider trigger request may comprise one or more of providertrigger criteria 391 and a trigger action 393.

Provider trigger criteria 391 may comprise data or instructions that,when processed by beacon registry 105, establish conditions fortriggering actions, consistent with disclosed embodiments. For example,as described above with respect to FIG. 3G, a provider system may beconfigured to determine potential customers based on one or more of auser location history, transaction history, user demographics, andsocial activity. In some embodiments, such a determination may beexpressed as a set of trigger criteria and provided to beacon registry105 in provider trigger criteria 391. Similarly, trigger criteria may beassociated with user interest in products on which a provider, e.g., amerchant, is currently extending special offers. As described above,such interest may be established based on the past location history of auser.

Trigger action 393 may comprise data or instructions that, whenprocessed by beacon registry 105, configure beacon registry 105 toperform actions upon satisfaction of corresponding provider triggercriteria. In some embodiments, beacon registry 105 may be configured bytrigger action 393 to provide a trigger to one or more of beacon system120 and provider system 125 upon receipt of an indication from a userdevice satisfying the provider trigger criteria. Beacon system 120and/or provider system 125 may be configured by the content of thetrigger to communicate with the user device. In certain embodiments,beacon registry 105 may be configured by trigger action 393 to providelocation services information to a user device upon receipt of a triggerindication from one or more of a user device or a beacon and/orreceiver. In certain aspects, the location services information may beprovided according to the provider trigger criteria. For example, theprovider services criteria may specify the offers, directions, andproduct information provided. For example, beacon registry 105 may beconfigured by provider trigger request 390 to provide offers ofdiscounted swimwear to a user device (e.g., user device 110) when beaconregistry 105 receives an indication that the user device is in proximityto a beacon and/or receiver. In some aspects, the indication may bereceived from the user device. In certain aspects, the indication may bereceived from the beacon and/or receiver.

FIG. 4 depicts exemplary operations in a process for providing locationservices to a user device, consistent with disclosed embodiments. Insome embodiments, in step 401, beacon system 120 may be configured toprovide beacon information for beacons and/or receivers (e.g.,beacon/receivers 115). In certain aspects, beacon system 120 may beconfigured to provide the beacon information to beacon registry 105. Thebeacon information may comprise a beacon information message (e.g.,beacon information message 340), as described above with respect to FIG.3C.

Beacon registry 105 may be configured to update one or more beaconentries (e.g., beacon entry 301) of database 201 corresponding tobeacon/receivers 115 in step 402, consistent with disclosed embodiments.In some embodiments, the beacons/receivers may be updated according tothe beacon information message. As would be understood by one of skillin the art, beacon registry 105 may also be configured to create,modify, or delete one or more beacon entries according to the beaconinformation message.

Beacon registry 105 may be configured to receive a beacon request (e.g.,beacon request message 350) from user device 110 in step 403, consistentwith disclosed embodiments. As described above with regards to FIG. 3D,the beacon request may include one or more of a user location, useridentifier, and user update metadata.

/Beacon registry 105 may be configured to select beacons based on thebeacon entries of database 201 and the received beacon request in step405, consistent with disclosed embodiments. In some embodiments, beaconregistry 105 may be configured to select beacons based on a proximitycriterion. In some aspects the proximity criterion may be distancebased. For example, beacon registry 105 may be configured to selectbeacons sufficiently close to user device 110 to be detected by userdevice 110. As an additional example, beacon registry 105 may beconfigured to select receivers sufficiently close to user device 110 tobe detectable by user device 110. In certain aspects, the proximitycriterion may include selecting beacons/receivers in the sameenvironment as the user device. For example, beacon registry 105 may beconfigured to select beacons/receivers in the same facility as the userdevice, such as the same store, mall, building, or highway.

Beacon registry 105 may be configured to provide selected beaconinformation to the user device in step 407, consistent with disclosedembodiments. Beacon registry 105 may be configured to provide theselected beacon information using selected beacon message 360,consistent with disclosed embodiments. As described above with, regardto FIG. 3E, selected beacon message 360 may comprise one or more ofconnection information 361 and location services information 363. Insome aspects, connection information 361 may comprise informationenabling user device 110 to connect with the selected beacons/receivers.For example, connection information 361 may comprise UUIDs, or similaridentifiers, for the selected beacons/receivers.

User device 110 may be configured to register the selectedbeacons/receivers in step 409, consistent with disclosed embodiments. Insome embodiments, registering the selected beacons/receivers may enableuser device 110 to detect the selected beacons/receivers. In someaspects, registering the selected beacons/receivers may compriseconfiguring one or more of application 205 or user device 110 withconnection information 361. For example, connection information 361 maycomprise a set of UUIDs, or similar identifiers. In some aspects,registering the selected beacons/receivers may configure one or more ofapplication 205 and the operating system of user device 110 to scan forbeacons/receivers with the UUIDs, or similar identifiers, specified inthe connection information.

User device 110 may be configured to receive an indication from one ofbeacon/receiver 115 in step 411, consistent with disclosed embodiments.In some embodiments, the indication may comprise a broadcast messageprovided by a beacon. For example, the broadcast message may comprisethe UUID, or a similar identifier. Based on the received broadcastmessage, user device 110 may be configured to establish a connectionwith the one of beacon/receiver 115. This connection may enablecommunication between user device 110 and the connected one ofbeacon/receiver 115. As would be appreciated by one of skill in the art,in certain embodiments, the indication may be generated by a receiverbased on a broadcast message provided by user device 110.

User device 110 may be configured to communicate with one or more ofbeacon registry, beacon/receiver 115, beacon system 120, and providersystem 125 in steps 413 a-413 d, consistent with disclosed embodiments.In some embodiments, user device 110 may be configured to communicatebased on the connection with beacon/receiver 115. As described abovewith respect to FIG. 3F, user device 110 may be configured to provide auser message 370. This user message may comprise one or more of a useridentifier 371 and user message payload 373. In some embodiments, theuser message payload may comprise one or more of connection information(to enable sharing of the connected one of beacons/receivers 115), usermetadata regarding the shared at least one beacon and/or receiver (toenable updating of the beacon entry) and a request for location serviceinformation based on an indication received from one ofbeacons/receivers 115.

User device 110 may be configured to display location servicesinformation in step 415, consistent with disclosed embodiments. Incertain embodiments, user device 110 may be configured by application205 with a graphical user interface for disclosing the received locationservices information. For example, application 205 may be configured todisplay one or more received offers, directions, or products using thegraphical user interface.

FIG. 5 depicts exemplary operations in a process for providing locationservices to additional user devices, consistent with disclosedembodiments. In some embodiments, in step 501, beacon registry 105 andfirst user device 111 may be configured to communicate. As describedabove with regards to FIG. 4 , first user device 111 may be configuredto provide a beacon request (e.g., beacon request message 350) to beaconregistry 105. In response, beacon registry 105 may be configured toselect beacons. In some aspects, beacon registry 105 may be configuredto select beacons based on beacon entries in database 201. In certainaspects, beacon registry 105 may be configured to select beacons basedon user entries in database 201. For example, beacon registry 105 may beconfigured to select beacons based on proximity, using location 311 anduser location 351 (or user location history 321). As an additionalexample, beacon registry 105 may be configured to select beacons basedon beacon metadata 315 and user metadata 323. For example, beaconregistry 105 may be configured to select beacons based on confidencerating 318 and preferences 326. In some aspects, beacon registry 105 maybe configured to provide beacon information for selected beacons tofirst user device 111. In some embodiments, first user device 111 may beconfigured to register the selected beacons, as described above withregards to FIG. 4 .

First user device 111 may be configured to provide a first user message(e.g., user message 370), consistent with disclosed embodiments. In someembodiments, in step 503 a, first user device 111 may be configured toprovide a first user message to second user device 112. In certainaspects, the first user message may provide communication informationfor one or more of beacons/receivers 115 to second user device 112. Incertain embodiments, in step 503 b, first user device 111 may beconfigured to provide a first user message to beacon registry 105. Insome aspects, the first user message may comprise instructions. Incertain aspects, the instructions may configure beacon registry 105 toprovide beacon information for one of more of beacons/receivers 115 tosecond user device 112 in step 503 c. In this manner, location system100 may enable first user device 111 to directly or indirectly sharecommunication information regarding one or more of beacons/receivers 115with second user device 112. In some embodiments, in the same manner,user comments and ratings regarding beacons (e.g., user-submittedmetadata 317 and confidence rating 318) may also be directly orindirectly shared.

Second user device 112 may be configured to register the one or morebeacons/receivers in step 505, consistent with disclosed embodiments. Insome embodiments, second user device 112 may be configured to registerthe one or more beacons/receivers using the received communicationinformation as in step 409. Second user device 112 may be configured toreceive an indication of one of the selected beacons/receivers in step506, consistent with disclosed embodiments. Similar to user device 110,as described above with respect to step 411, second user device 112 maybe configured to establish a connection with the one ofbeacons/receivers 115. Similar to user device 110, as described abovewith respect to steps 413 a-413 d, second user device 112 may beconfigured to communicate with one or more of beacon registry 105,beacon/receiver 115, beacon system 120, and provider system 125 in steps507 a-507 d. As in step 415, second user device 112 may be configured todisplay location services information received from one or more of thebeacon registry 105, beacon/receiver 115, beacon system 120, andprovider system 125 in step 509.

FIG. 6 depicts exemplary operations in a process for providing locationsservices based on user analytics, consistent with disclosed embodiments.Provider system 125 (or beacon system 120) may be configured to providea provider information request (e.g., provider information request 380)in step 601. In some aspects, as described above with respect to FIG.3G, the provider information request may be configured to request userinformation. In some aspects, the provider information request mayconcern aggregate user information. For example, beacon registry 105 maybe configured to use analytics engine 203 to determine the customersegments and descriptive demographics of users traversing a particularlocation in a given day. This information could also be broken out bycompetitors in each customer segment (e.g., the number of usersassociated with a competitor, such as another mobile phone provider).

In certain aspects, the provider information request may concernindividual user information. Beacon registry 105 may be configured touse analytics engine 203 to determine a response to the providerinformation request in step 603, consistent with disclosed embodiments.In some aspects, analytics engine 203 may be configured to use userentry 303 to determine the response to the provider information request.For example, analytics engine 203 may be configured to use one or moreof user location history and user metadata 323, according to userpreferences, as described above with response to FIG. 3G. In someembodiments, the response may depend on the user location history. Insome aspects, the user location history depends on the beacon requestsof a user device, as a user device may be configured by application 205to report user location 351 with each beacon request. Beacon registry105 may be configured to provide a response to provider system 125 (orbeacon system 120) in step 605, consistent with disclosed embodiments.In some aspects, the response may comprise user information. As anon-limiting example, if the provider is a merchant, the userinformation may identify potential customers of the merchant associatedwith provider system 125 (or beacon system 120). The user informationmay also identify customers of a competitor of provider system 125 (orbeacon system 120). In step 607, provider system 125 (or beacon system120) may be configured to provide location service information to userdevice 110 through network 130 based on the user information receivedfrom beacon registry 105. For example, provider system 125 may beconfigured to provide targeted offers, such as discounts for relevantproducts, to users currently located at facilities of competitors. As anadditional example provider system 125 may be configured to identifyusers that may be potential clients and direct them to a facility ofprovider system 125.

FIGS. 7A and 7B depict exemplary operations in a process for providinglocation services using registered events, consistent with disclosedembodiments. FIG. 7A depicts an exemplary system for providing locationservices information using events managed by beacon registry 105. Beaconregistry 105 may be configured to receive a provider trigger request instep 701 a, consistent with disclosed embodiments. In some embodiments,as described above with respect to FIG. 3H, the provider trigger request(e.g., provider trigger request 390) may comprise provider triggercriteria. In some aspects, the provider trigger criteria may describedesired characteristics of users. For example, the provider triggercriteria may describe potential customers, high-spending customers, orcustomers potentially convertible from competitors, in terms of a userdata, such as user location history, transaction history, demographics,or social media presence. One of skill in the art would appreciate thatother beneficial user categories may be determined from such user data,and the envisioned systems and methods are not limited to the customercategories described above. Beacon registry 105 may be configured toestablish an event trigger in step 705 a, consistent with disclosedembodiments.

User device 110 may provide an indication capable of satisfying theprovider trigger criteria in step 707 a. In some embodiments,communications from user device indicating interactions with locationsystem 100 may satisfy the provider trigger criteria. For example, abeacon request may comprise an indication capable of satisfying theprovider trigger criteria. As an additional example, a user message or areport of a communication between user device 110 and one or more ofbeacons/receivers 115 and beacon system 120 may also comprise anindication capable of satisfying the provider trigger criteria.

Beacon registry 105 may be configured to determine that the indicationsatisfied the established event in step 709 a. This determination may bebased on the contents of the indication and the provider triggercriteria. Beacon registry 105 may be configured to perform a triggeraction (e.g., trigger action 393) based on the determined satisfactionof the provider trigger criteria. In some embodiments, this triggeraction may comprise providing a trigger to provider system 125 in step711 a. In some aspects, the trigger may enable communication betweenprovider system 125 and user device 110. For example, the trigger mayinclude identifying information, such as an email address, IM address,username, IMSI, or similar identifying information. The trigger may alsobe configured to indicate the trigger criteria satisfied by theindication provided by the user device 110.

Provider system 125 (or beacon system 120) may be configured to use theinformation provided by the trigger received from beacon registry 105 tocommunicate with user device 110 in step 713 a, consistent withdisclosed embodiments. As described with regards to FIGS. 4 and 5 , userdevice 110 may be configured to receive and display location servicesinformation provided by provider system 125 in step 715 a, consistentwith disclosed embodiments.

FIG. 7B depicts an exemplary system for providing location servicesinformation using events managed by user device 110. In someembodiments, user device 110 may be configured to receive a providertrigger request (e.g., provider trigger request 390) from providersystem 125. The provider trigger request may comprise provider triggercriteria as describe above. However, provider trigger request maycomprise a trigger action 393 that causes user device 110 to displaylocation service information according to the trigger action. In step705 b, user device 110 may be configured to establish an event on userdevice 110, similar to the event established in step 705 a. In step 707b, user device 110 may be configured to receive an indication from oneor more of beacons/receivers 115. For example, user device 110 may beconfigured to receive a UUID or other identifying feature. In someaspects, the one or more of beacons/receivers 115 may have beenpreviously registered by user device 110, to enable user device 110 toscan for the indication.

User device 110 may be configured to determine that the indicationreceived from beacon receiver satisfies one or more of the eventconditions established in step 709 b, consistent with disclosedembodiments. For example, provider system 125 may have been configuredto provide provider trigger messages satisfied by the receipt of anindication from certain ones of beacons/receivers 115. In some aspects,these indications may show that user 110 a is proximate to thebeacon/receiver providing or receiving the indication. Thus suitablelocation services may be determined based on a receipt of an indicationfrom certain ones of beacons/receivers 115. Similar to the description,above with regard to FIGS. 4 and 5 , in step 715 b, user device may beconfigured to display location services, such as offers, directions, andproduct information, on a graphical user interface of user device 110.

FIG. 8 depicts a schematic of an electronic device 800 of locationsystem 100, consistent with disclosed embodiments. According to someembodiments, electronic device 800 may include a processor 805, memory810, display 815, power supply 820, I/O interface(s) 825, andcommunications module 830. These units may communicate with each othervia bus 835 or wirelessly. The components shown in FIG. 8 may reside ina single device or multiple devices.

Processor 805 may be one or more microprocessors, central processingunits, or graphics processing units performing various methods inaccordance with disclosed embodiments. Memory 810 may include one ormore computer hard disks, random access memory, removable storage, orremote computer storage. Memory 810 may be configured to store softwareprograms executed by processor 805. In some embodiments, electronicdevice 800 may comprise display 815. Display 815 may comprise one ormore of an LED display, LCD display, CRT display, or similar displayconsistent with disclosed embodiments. In some embodiments, electronicdevice 800 may comprise power supply 820. In some aspects, power supply820 may include components for converting mains electricity to voltagesand/or currents suitable for use by other components of electronicdevice 800. In certain aspects, power supply 820 may comprise an energystorage device, such as a battery, capacitor, or other energy storagedevice known to one of skill in the art. In some embodiments, electronicdevice 800 may comprise I/O interfaces 825. I/O interfaces 825 mayinclude keyboard, a mouse, an audio input device, a touch screen, orsimilar human interface device, consistent with disclosed embodiments.Communications module 830 enables the exemplary device to exchangeinformation with components of FIG. 1 over network 130. In variousembodiments, communications module 830 may be configured to supportwireless or wired networks. In certain aspects, communications module830 may be configured with modules for supporting one or more local areanetworks, personal area networks, Bluetooth networks, RFID networks, andnear-field networks. As would be recognized by one of skill in the art,in some embodiments, electronic device 800 may include some or all ofthe components listed in FIG. 8 .

Other embodiments will be apparent to those skilled in the art fromconsideration of the specification and practice of the disclosedembodiments disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritof the disclosed embodiments being indicated by the following claims.Furthermore, although aspects of the disclosed embodiments are describedas being associated with data stored in memory and other tangiblecomputer-readable storage mediums, one skilled in the art willappreciate that these aspects can also be stored on and executed frommany types of tangible computer-readable media, such as secondarystorage devices, like hard disks, floppy disks, CD-ROM, or other formsof RAM or ROM. Accordingly, the disclosed embodiments are not limited tothe above described examples, but instead is defined by the appendedclaims in light, of their full scope of equivalents.

Moreover, while illustrative embodiments have been described herein, thescope includes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations or alterations based on the presentdisclosure. The elements in the claims are to be interpreted broadlybased on the language employed in the claims and not limited to examplesdescribed in the present specification or during the prosecution of theapplication, which examples are to be construed as non-exclusive.Further, the steps of the disclosed methods can be modified in anymanner, including by reordering steps or inserting or deleting steps. Itis intended, therefore, that the specification and examples beconsidered as example only, with a true scope and spirit being indicatedby the following claims and their full scope of equivalents.

What is claimed is:
 1. A beacon system comprising: non-transitory memorystoring instructions; and one or more processors programmed to executethe instructions to perform operations comprising: receiving wirelessconnection information for a plurality of beacons; updating, based onthe wireless connection information, one or more entries stored in adatabase; receiving, via a first user device, one or more instructionsto provide beacon information to a second user device; and providing,based on the one or more instructions the first user device and the oneor more entries of the database, first wireless connection informationfor a first beacon to the second user device, the first wirelessconnection information enabling the second user device to register withthe first beacon.
 2. The beacon system of claim 1, wherein providing thefirst wireless connection information comprises: determining a set ofdevices, comprising the plurality of beacons, based on the updated oneor more entries and one or more other entries comprising connectioninformation; selecting the first beacon from the set of devices; andproviding, based on the selection of the first beacon, the firstwireless connection information for the first beacon to the second userdevice.
 3. The beacon system of claim 2, wherein selecting the firstbeacon comprises selecting the first beacon from the set of devicesbased on a proximity of the first beacon to a location of the seconduser device.
 4. The beacon system of claim 2, wherein selecting thefirst beacon comprises selecting the first beacon from the set ofdevices based on a ranking of the first beacon.
 5. The beacon system ofclaim 2, wherein selecting the first beacon comprises selecting thefirst beacon from the set of devices based on a stored user preferenceassociated with a user of the first user device.
 6. The beacon system ofclaim 1, wherein the first wireless connection information comprisessecurity information that enables the second user device to connect tothe first beacon.
 7. One or more non-transitory computer-readable mediastoring instructions that, when executed by one or more processors,cause operations comprising: receiving wireless connection informationfor wireless devices comprising beacons; updating, based on the wirelessconnection information, one or more entries stored in a database;receiving, via a first user device, one or more instructions to provideconnection information to a second user device; and providing, based onthe one or more instructions and the one or more entries, first wirelessconnection information for a first wireless beacon device to the seconduser device.
 8. The one or more non-transitory computer-readable mediaof claim 7, wherein providing the first wireless connection informationcomprises: determining a set of devices, comprising the wirelessdevices, based on the updated one or more entries and one or more otherentries comprising connection information; selecting the first wirelessbeacon device from the set of devices; and providing, based on theselection of the first wireless beacon device, the first wirelessconnection information for the first wireless beacon device to thesecond user device.
 9. The one or more non-transitory computer-readablemedia of claim 8, wherein selecting the first wireless beacon devicecomprises selecting the first wireless beacon device from the set ofdevices based on a proximity of the first wireless beacon device to alocation of the second user device.
 10. The one or more non-transitorycomputer-readable media of claim 8, wherein selecting the first wirelessbeacon device comprises selecting the first wireless beacon device fromthe set of devices based on a ranking of the first wireless beacondevice.
 11. The one or more non-transitory computer-readable media ofclaim 8, wherein selecting the first wireless beacon device comprisesselecting the first wireless beacon device from the set of devices basedon a stored user preference associated with a user of the first userdevice.
 12. The one or more non-transitory computer-readable media ofclaim 7, wherein the first wireless connection information comprisessecurity information that enables the second user device to connect tothe first wireless beacon device.
 13. The one or more non-transitorycomputer-readable media of claim 7, wherein the first wireless beacondevice comprises a first wireless transmitter for a first wirelessprotocol and a second wireless transmitter for a second wirelessprotocol different from the first wireless protocol.
 14. A methodcomprising: receiving wireless connection information for wirelessdevices comprising beacons; updating, based on the wireless connectioninformation, one or more entries stored in a database; receiving, via afirst device of a user, one or more instructions to provide connectioninformation to a second device; and providing, based on the one or moreinstructions and the one or more entries, first wireless connectioninformation for a first wireless beacon device to the second device. 15.The method of claim 14, wherein providing the first wireless connectioninformation comprises: determining a set of devices, comprising thewireless devices, based on the updated one or more entries and one ormore other entries comprising connection information; selecting thefirst wireless beacon device from the set of devices; and providing,based on the selection of the first wireless beacon device, the firstwireless connection information for the first wireless beacon device tothe second device.
 16. The method of claim 15, wherein selecting thefirst wireless beacon device comprises selecting the first wirelessbeacon device from the set of devices based on a proximity of the firstwireless beacon device to a location of the second device.
 17. Themethod of claim 15, wherein selecting the first wireless beacon devicecomprises selecting the first wireless beacon device from the set ofdevices based on a ranking of the first wireless beacon device.
 18. Themethod of claim 15, wherein selecting the first wireless beacon devicecomprises selecting the first wireless beacon device from the set ofdevices based on a stored user preference associated with the user. 19.The method of claim 14, wherein the first wireless connectioninformation comprises security information that enables the seconddevice to connect to the first wireless beacon device.
 20. The method ofclaim 14, wherein the first wireless beacon device comprises a firstwireless transmitter for a first wireless protocol and a second wirelesstransmitter for a second wireless protocol different from the firstwireless protocol.